package com.an.blog.service;

import com.an.blog.admin.domain.bo.BlogFriendLinkBo;
import com.an.blog.admin.domain.vo.BlogFriendLinkVo;
import com.an.blog.web.domain.bo.BlogFriendLinkWebBo;
import com.an.blog.web.domain.vo.BlogFriendLinkWebVo;
import com.an.common.core.domain.PageQuery;
import com.an.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 博客友链Service接口
 *
 * @author Ann
 * @date 2023-10-17
 */
public interface IBlogFriendLinkService {

    /**
     * 查询博客友链
     */
    BlogFriendLinkVo queryById(Long id);

    /**
     * 查询博客友链列表
     */
    TableDataInfo<BlogFriendLinkVo> queryPageList(BlogFriendLinkBo bo, PageQuery pageQuery);

    /**
     * 查询博客友链列表
     */
    List<BlogFriendLinkVo> queryList(BlogFriendLinkBo bo);

    /**
     * 新增博客友链
     */
    Boolean insertByBo(BlogFriendLinkBo bo);

    /**
     * 修改博客友链
     */
    Boolean updateByBo(BlogFriendLinkBo bo);

    /**
     * 校验并批量删除博客友链信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 按id检查
     *
     * @param ids id
     * @return {@link Boolean }
     * @author: Ann
     * @createDate: 2023/10/17 14:56:23
     * @version: 1.0.0
     */
    Boolean checkByIds(Collection<Long> ids);

    /**
     * 取消检查
     *
     * @param id id
     * @return {@link Boolean }
     * @author: Ann
     * @createDate: 2023/10/17 15:06:44
     * @version: 1.0.0
     */
    Boolean cancelCheck(Long id);


    /**
     * 查询好友链接web列表
     *
     * @return {@link List }<{@link BlogFriendLinkWebVo }>
     * @author: Ann
     * @createDate: 2023/10/23 15:58:43
     * @version: 1.0.0
     */
    List<BlogFriendLinkWebVo> queryFriendLinkWebList();

    /**
     * 申请好友链接
     *
     * @param blogFriendLinkWebBo 博客好友链接网站博
     * @return {@link Boolean }
     * @author: Ann
     * @createDate: 2023/10/24 16:31:04
     * @version: 1.0.0
     */
    Boolean applyForFriendLink(BlogFriendLinkWebBo blogFriendLinkWebBo);
}
